# python中的多态，不关心对象的数据类型，也不关心是否存在继承关系，
# 只关心对象的行为（方法）。
# 只要不同类中有同名的方法，即可实现多态。

# 为什么要实现多态？   多态的作用是在程序运行过程中，动态决定调用哪个对象中的方法。实现程序的可扩展性
class Person():
    def eat(self):
        print('人吃五谷杂粮')


class Cat():
    def eat(self):
        print('猫吃鱼')


class Dog():
    def eat(self):
        print('狗啃骨头')


# 3个类中，有一个同名的方法 eat
def fun(obj):
    obj.eat()  # 通过变量obj调用eat方法


# 创建3个类的对象
per = Person()
cat = Cat()
dog = Dog()

# 调用函数
fun(per)   # 不关心对象的数据类型，只关心对象是否具有同名方法
fun(cat)
fun(dog)
